home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Software Contest 3 / FM Towns Software Contest 3.iso / exp / tmanager / no1 / tmanager.bas < prev    next >
BASIC Source File  |  1994-01-07  |  36KB  |  679 lines

  1. 100 '
  2. 110 'TOWNSまねーじゃー PRODUCED BY 金津貴之 1992
  3. 120 '                      立教高等学校3年
  4. 130 '
  5. 140 '♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪
  6. 150 '♪カレンダーはグレゴリオ暦(Gregorian calendar)に準拠しています。♪
  7. 160 '♪グレゴリオ暦が制定されたのは1582年9月からですので、このソフトは♪
  8. 170 '♪1583年1月1日から9998年12月31日(理論値)迄をサポートしています。♪
  9. 180 '♪(注)内蔵時計は年の情報が2桁なので、2092年以降にこのソフトを起動♪
  10. 190 '♪  することは出来ません(強制的に年が1992年になってしまいます)♪
  11. 200 '♪  また「・・・経過」と「まで・・・日」は共に1から999999日迄です。   ♪
  12. 210 '♪現在ではグレゴリオ暦が標準の太陽暦ですが、そのうち世界暦が標準♪
  13. 220 '♪となる日がやってくるかもしれません。その時はこのソフトは何の役♪
  14. 230 '♪にも立たなくなるでしょう。(T_T)                ♪
  15. 240 '♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪♪
  16. 250 '
  17. 260 SCREEN@ 0 : CLS : CLEAR ,,,900000 : CONSOLE 0,24 : STOP OFF
  18. 270 ON ERROR GOTO *ERROR : GOSUB *初期画面
  19. 280 '
  20. 290 *メイン
  21. 300 '
  22. 310 WHILE (MOUSE(2,0)=-1 AND MMJ=0) : WEND : MMJ=0
  23. 320 WHILE MOUSE(2,0)= 0 : WEND
  24. 330 MX=MOUSE(0) : MY=MOUSE(1) : MW=1
  25. 340 WHILE MW<MAXWIN+1
  26. 350    IF MX>=WSX(MW) AND MY>=WSY(MW) AND MX<=WEX(MW)-6 AND MY<=WEY(MW)-6 THEN 390
  27. 360    MW=MW+1
  28. 370 WEND
  29. 380 GOTO *メイン
  30. 390 IF MW<>1 THEN GOSUB 1080 : GOTO *メイン
  31. 400 CX=MX-WSX(1)-9 : CY=MY-WSY(1)-9
  32. 410 IF CX<0 OR CY<0 OR CX>15 OR CY>15 THEN 570
  33. 420 PUT@A (WSX(1)+8,WSY(1)+8)-(WSX(1)+31,WSY(1)+31),ICN%,PSET,,,,288
  34. 430 GOSUB *WAIT
  35. 440 PUT@A (WSX(1)+8,WSY(1)+8)-(WSX(1)+31,WSY(1)+31),ICN%,PSET,,,,144
  36. 450 MW=2 : WHILE MW<MAXWIN+1
  37. 460    IF WIN(MW)=1 THEN 480 ELSE MW=MW+1
  38. 470 WEND
  39. 480 WSX=((WIN(1)-2) MOD 4)*56+WSX(MW)+20 : WEX=WSX+31
  40. 490 WSY=((WIN(1)-2) \ 4)*64+WSY(MW)+36 : WEY=WSY+31
  41. 500 IF WIN(1)=8 THEN WSX=OSX : WSY=OSY : WEX=OEX : WEY=OEY : YMD=0
  42. 510 OSX=WSX(1) : OSY=WSY(1) : OEX=WEX(1)-6 : OEY=WEY(1)-6
  43. 520 IF WIN(1)=9 THEN WSX=WSX(2)+9 : WSY=WSY(2)+9 : WEX=WSX+15 : WEY=WSY+15
  44. 530 IF WIN(1)<>1 THEN GOSUB *WIN閉 : PP=1 : GOSUB *WIN変 : IF RET=0 THEN GOTO *メイン ELSE GOTO 3560
  45. 540 WIN=9 : WSX=197 : WSY=187 : OSX=WSX(1)+9 : OSY=WSY(1)+9
  46. 550 OEX=OSX+15 : OEY=OSY+15 : RET=0 : MES$="終了します"
  47. 560 GOSUB *WIN開 : GOTO *メイン
  48. 570 IF ST(WIN(1))<>1 THEN 840 ELSE CX=(MX-WEX(1)+63) MOD 24 : CY=MY-WSY(1)-9
  49. 580 'up,downボタン
  50. 590 IF CX<0 OR CY<0 OR CX>15 OR CY>15 THEN 840
  51. 600 CX=(MX-WEX(1)+63) \ 24 : IF CX>1 OR CX<0 THEN 840
  52. 610 WSX=WSX(1) : WSY=WSY(1) : WEX=WEX(1) : WEY=WEY(1) : WIN=WIN(1)
  53. 620 PUT@A (CX*24+WEX(1)-63,WSY+8)-(CX*24+WEX(1)-40,WSY+31),ICN%,PSET,,,,1296+CX*432
  54. 630 GOSUB *WAIT
  55. 640 PUT@A (CX*24+WEX(1)-63,WSY+8)-(CX*24+WEX(1)-40,WSY+31),ICN%,PSET,,,,1152+CX*432
  56. 650 ON WIN(1)-1 GOTO 660,700,740,780 : GOTO *メイン
  57. 660 SM(0)=SM(0)+CX*2-1
  58. 670 IF SM(0)<1 THEN SY(0)=SY(0)-1 : SM(0)=12 : IF SY(0)<1583 THEN SY(0)=1583 : SM(0)=1 : SD(0)=1
  59. 680 IF SM(0)>12 THEN SY(0)=SY(0)+1 : SM(0)=1 : IF SY(0)>9998 THEN SY(0)=9998 : SM(0)=12 : SD(0)=31
  60. 690 GOSUB 3830 : GOTO *メイン
  61. 700 SD(1)=SD(1)+CX*2-1
  62. 710 IF SD(1)<1 THEN SM(1)=SM(1)-1 : IF SM(1)<1 THEN SY(1)=SY(1)-1 : SM(1)=12 : SD(1)=31 : IF SY(1)<1583 THEN SY(1)=1583 : SM(1)=1 : SD(1)=1 ELSE 720 ELSE SD(1)=MONTH(SM(1))
  63. 720 IF SD(1)>MONTH(SM(1)) THEN SM(1)=SM(1)+1 : IF SM(1)>12 THEN SY(1)=SY(1)+1 : SM(1)=1 : SD(1)=1 : IF SY(1)>9998 THEN SY(1)=9998 : SM(1)=12 : SD(1)=31 ELSE 730 ELSE SD(1)=1
  64. 730 GOSUB 3830 : GOTO *メイン
  65. 740 SD(2)=SD(2)+(CX*2-1)*7
  66. 750 IF SD(2)<1 THEN SM(2)=SM(2)-1 : IF SM(2)<1 THEN SY(2)=SY(2)-1 : SM(2)=12 : SD(2)=31+SD(2) : IF SY(2)<1583 THEN SY(2)=1583 : SM(2)=1 : SD(2)=1 ELSE 760 ELSE SD(2)=MONTH(SM(2))+SD(2)
  67. 760 IF SD(2)>MONTH(SM(2)) THEN CG=SD(2)-MONTH(SM(2)) : SM(2)=SM(2)+1 : IF SM(2)>12 THEN SY(2)=SY(2)+1 : SM(2)=1 : SD(2)=CG : IF SY(2)>9998 THEN SY(2)=9998 : SM(2)=12 : SD(2)=31 ELSE 770 ELSE SD(2)=CG
  68. 770 GOSUB 3830 : GOTO *メイン
  69. 780 PIP=IP : IP=IP+CX*2-1 : IF IP<1 THEN IP=1
  70. 790 IF (IP-1)*5+1>INI THEN IP=IP-1 : GOTO 790
  71. 800 IF PIP<>IP THEN GOSUB 3830 : GOTO *メイン ELSE GOTO *メイン
  72. 810 '
  73. 820 'ウインドウを動かす
  74. 830 '
  75. 840 IF MY>WSY(MW)+31 OR WIN(MW)=8 THEN GOSUB *WINDOW : GOTO *メイン
  76. 850 BGM 1 : PLAY OFF : PLAY "@29o4c4" : DQDQ=MOUSE(9) : DQDQ=MOUSE(10)
  77. 860 WSX=WSX(1) : WSY=WSY(1) : WEX=WEX(1) : WEY=WEY(1) : WIN=WIN(1)
  78. 870 LINE (WSX,WSY)-(WEX-6,WEY-6),XOR,%15,B
  79. 880 WHILE MOUSE(2,0)=-1
  80. 890    MX=MOUSE(9) : MY=MOUSE(10)
  81. 900    IF MX=0 AND MY=0 THEN 1000
  82. 910    QSX=WSX+MX : QEX=WEX+MX : QSY=WSY+MY : QEY=WEY+MY
  83. 920    IF QSX<0 THEN MX=MX-QSX : GOTO 910
  84. 930    IF QEX>639 THEN MX=MX-QEX+639 : GOTO 910
  85. 940    IF QSY<0 THEN MY=MY-QSY : GOTO 910
  86. 950    IF QEY>479 THEN MY=MY-QEY+479 : GOTO 910
  87. 960    IF QSX=WSX AND QSY=WSY AND QEX=WEX AND QEY=WEY THEN 1000
  88. 970    LINE (WSX,WSY)-(WEX-6,WEY-6),XOR,%15,B
  89. 980    WSX=QSX : WSY=QSY : WEX=QEX : WEY=QEY
  90. 990    LINE(WSX,WSY)-(WEX-6,WEY-6),XOR,%15,B
  91. 1000 WEND
  92. 1010 LINE(WSX,WSY)-(WEX-6,WEY-6),XOR,%15,B
  93. 1020 LINE (WSX(1),WSY(1))-(WEX(1),WEY(1)),PSET,%1,BF
  94. 1030 WSX(1)=WSX : WSY(1)=WSY : WEX(1)=WEX : WEY(1)=WEY
  95. 1040 BGM 1 : PLAY OFF : PLAY "@37o4c4" : GOSUB *WIN再書 : GOTO *メイン
  96. 1050 '
  97. 1060 'アクテイブウインドゥを変える
  98. 1070 '
  99. 1080 IF WIN(1)>7 THEN RETURN
  100. 1090    IF KSS=1 OR KSW=1 THEN LXW=1 : GOSUB *WIN再書
  101. 1100 BGM 1 : PLAY OFF : PLAY "o4l8@44e"
  102. 1110 CIN=WIN(MW) : CSX=WSX(MW) : CSY=WSY(MW) : CEX=WEX(MW) : CEY=WEY(MW)
  103. 1120 PAINT@ (WSX(1)+4,WSY(1)+4),%9
  104. 1130 FOR WI=MW TO 2 STEP -1
  105. 1140    WIN(WI)=WIN(WI-1) : WSX(WI)=WSX(WI-1) : WSY(WI)=WSY(WI-1)
  106. 1150    WEX(WI)=WEX(WI-1) : WEY(WI)=WEY(WI-1)
  107. 1160 NEXT
  108. 1170 WIN(1)=CIN : WSX(1)=CSX : WSY(1)=CSY : WEX(1)=CEX : WEY(1)=CEY
  109. 1180 LINE (WSX(1)+6,WSY(1)+6)-(WEX(1),WEY(1)),PSET,%4,BF
  110. 1190 PUT@A (WSX(1),WSY(1))-(WEX(1)-6,WEY(1)-6),BG%,PSET,,,,MBG(WIN(1))
  111. 1200 IF KK=0 THEN PAINT@ (WSX(1)+4,WSY(1)+4),%5
  112. 1210 RETURN
  113. 1220 '
  114. 1230 *WINDOW
  115. 1240 '
  116. 1250 ON WIN(1) GOTO 1730,1940,1300,1570,3110,2270,2810,2360,3220
  117. 1260 RETURN
  118. 1270 '
  119. 1280 'スケジュールのチェック
  120. 1290 '
  121. 1300 RX=(MX-WSX(1)-76) : RY=(MY-WSY(1)-36)
  122. 1310 IF RX<0 OR RY<0 OR RX>143 OR RY>15 THEN 1340
  123. 1320 OSX=WSX(1)+76 : OSY=WSY(1)+36 : OEX=OSX+143 : OEY=OSY+15
  124. 1330 YMD=2 : WSX=208 : WSY=396 : WIN=8 : GOSUB *WIN開 : RETURN
  125. 1340 RX=MX-WSX(1)-34 : RY=(MY-WSY(1)-61) MOD 24
  126. 1350 IF RX<0 OR RX>289 OR RY<0 OR RY>15 THEN 1430
  127. 1360 RY=(MY-WSY(1)-61) \ 24+1: IF RY<1 OR RY>10 THEN RETURN
  128. 1370 YEAR=SY(1) : MONTH=SM(1) : TODAY=SD(1) : MF=0
  129. 1380 FOR Y=1 TO MG
  130. 1390    IF SYEA(Y)=YEAR AND SMON(Y)=MONTH AND SDAY(Y)=TODAY THEN MF=Y : Y=MG+1
  131. 1400 NEXT : IF MF=0 THEN MF=MG+1 : RY=1 : MFG=1
  132. 1410 OSX=WSX(1)+34 : OSY=WSY(1)+37+24*RY : OEX=OSX+255 : OEY=OSY+15
  133. 1420 SMF=MF : SMY=RY : WSX=208 : WSY=396 : WIN=8 : GOSUB *WIN開 : RETURN
  134. 1430 RX=MX-WSX(1)-7 : RY=(MY-WSY(1)-61) MOD 24
  135. 1440 IF RX<0 OR RX>15 OR RY<0 OR RY>15 THEN RETURN
  136. 1450 RY=(MY-WSY(1)-61) \ 24 : IF RY<0 OR RY>9 THEN RETURN ELSE RY=RY+1
  137. 1460 YEAR=SY(1) : MONTH=SM(1) : TODAY=SD(1)
  138. 1470 MF=0 : FOR Y=1 TO MG
  139. 1480    IF SYEA(Y)=YEAR AND SMON(Y)=MONTH AND SDAY(Y)=TODAY AND SCA$(Y,RY)<>"" THEN MF=Y : Y=MG+1
  140. 1490 NEXT : IF MF=0 THEN RETURN
  141. 1500 KSS=1 : PUT@A (WSX(1)+6,WSY(1)+36+RY*24)-(WSX(1)+29,WSY(1)+59+RY*24),ICN%,PSET,,,,864-CK(MF,RY)*288 : GOSUB *WAIT
  142. 1510 CK(MF,RY)=1-CK(MF,RY) : PUT@A (WSX(1)+6,WSY(1)+36+RY*24)-(WSX(1)+29,WSY(1)+59+RY*24),ICN%,PSET,,,,720-CK(MF,RY)*288
  143. 1520 PAINT@ (WSX(1)+4,WSY(1)+4),%9 : GET@A (WSX(1),WSY(1))-(WEX(1)-6,WEY(1)-6),BG%,MBG(WIN(1)) : PAINT@ (WSX(1)+4,WSY(1)+4),%5
  144. 1530 RETURN
  145. 1540 '
  146. 1550 '週間を押したとき
  147. 1560 '
  148. 1570 RX=(MX-WSX(1)-64) : RY=(MY-WSY(1)-36)
  149. 1580 IF RX<0 OR RY<0 OR RX>239 OR RY>15 THEN 1610
  150. 1590 OSX=WSX(1)+64 : OSY=WSY(1)+36 : OEX=OSX+239 : OEY=OSY+15
  151. 1600 YMD=2 : WSX=208 : WSY=396 : WIN=8 : GOSUB *WIN開 : RETURN
  152. 1610 RX=MX-WSX(1)-8 : RY=(MY-WSY(1)-61) MOD 24
  153. 1620 IF RX<0 OR RX>367 OR RY<0 OR RY>15 THEN RETURN ELSE RY=(MY-WSY(1)-61) \ 24
  154. 1630 YEAR=SY(2) : MONTH=SM(2) : TODAY=SD(2) : GOSUB *WEEK : TODAY=TODAY-WEEK+RY
  155. 1640 IF TODAY<1 THEN MONTH=MONTH-1 : IF MONTH<1 THEN YEAR=YEAR-1 : MONTH=12 : TODAY=31+TODAY ELSE TODAY=MONTH(MONTH)+TODAY
  156. 1650 IF TODAY>MONTH(MONTH) THEN CG=TODAY-MONTH(MONTH) : MONTH=MONTH+1 : IF MONTH>12 THEN YEAR=YEAR+1 : MONTH=1 : TODAY=CG ELSE TODAY=CG
  157. 1660 IF SY(1)=YEAR AND SM(1)=MONTH AND SD(1)=TODAY THEN KK=0 ELSE KK=1
  158. 1670 SY(1)=YEAR : SM(1)=MONTH : SD(1)=TODAY
  159. 1680 OSX=WSX(1)+8 : OSY=WSY(1)+61+RY*24 : OEX=OSX+367 : OEY=OSY+15
  160. 1690 WIN=3 : GOSUB 1830 : KK=0 : RETURN
  161. 1700 '
  162. 1710 'メニューの内容をクリックした時
  163. 1720 '
  164. 1730 RX=(MX-WSX(1)-20) MOD 56 : RY=(MY-WSY(1)-36) MOD 64
  165. 1740 IF RX<0 OR RX>31 OR RY<0 OR RY>31 THEN RETURN
  166. 1750 RX=(MX-WSX(1)-20) \ 56 : RY=(MY-WSY(1)-36) \ 64 : WIN=RY*4+RX+2
  167. 1760 IF WIN>7 THEN RETURN ELSE PUT@A (WSX(1)+RX*56+20,WSY(1)+RY*64+36)-(WSX(1)+RX*56+51,WSY(1)+RY*64+67),MNU%,PSET,,,,512*(WIN-2)+256 : GOSUB *WAIT
  168. 1770 PUT@A (WSX(1)+RX*56+20,WSY(1)+RY*64+36)-(WSX(1)+RX*56+51,WSY(1)+RY*64+67),MNU%,PSET,,,,512*(WIN-2)
  169. 1780 IF WIN>1 AND WIN<5 THEN POPO=1
  170. 1790 OSX=RX*56+WSX(1)+20 : OSY=RY*64+WSY(1)+36 : OEX=OSX+31 : OEY=OSY+31
  171. 1800 '
  172. 1810 '某ウィンドゥから別のウィンドゥ開く
  173. 1820 '
  174. 1830 MW=2 : WHILE MW<MAXWIN+1
  175. 1840    IF WIN(MW)=WIN THEN 1890 ELSE MW=MW+1
  176. 1850 WEND : IF WIN=5 THEN IP=1
  177. 1860 IF POPO=1 THEN SY(WIN-2)=SY(3) : SM(WIN-2)=SM(3) : SD(WIN-2)=SD(3) : POPO=0
  178. 1870 WSX=INT(RND(1)*(640-MSX(WIN))) : WSY=INT(RND(1)*(480-MSY(WIN)))
  179. 1880 GOSUB *WIN開 : RETURN
  180. 1890 GOSUB 1080 : WSX=WSX(1) : WSY=WSY(1) : WEX=WEX(1) : WEY=WEY(1)
  181. 1900 IF KK=1 THEN GOSUB 3830 : RETURN ELSE RETURN
  182. 1910 '
  183. 1920 'カレンダーの内容をクリックした時
  184. 1930 '
  185. 1940 RX=(MX-WSX(1)-200) : RY=(MY-WSY(1)-180)
  186. 1950 IF RX<0 OR RY<0 OR RX>79 OR RY>15 THEN 1980
  187. 1960 OSX=WSX(1)+200 : OSY=WSY(1)+180 : OEX=OSX+79 : OEY=OSY+15
  188. 1970 YMD=1 : WSX=208 : WSY=396 : WIN=8 : GOSUB *WIN開 : RETURN
  189. 1980 RX=(MX-WSX(1)-8) MOD 40 : RY=(MY-WSY(1)-60) MOD 24
  190. 1990 IF RX<0 OR RY<0 OR RX>31 OR RY>15 THEN RETURN
  191. 2000 TODAY=1 : YEAR=SY(0) : MONTH=SM(0) : GOSUB *WEEK
  192. 2010 RX=(MX-WSX(1)-8) \ 40 : RY=(MY-WSY(1)-60) \ 24
  193. 2020 TODAY=RX+RY*7-WEEK+1
  194. 2030 IF TODAY<1 OR TODAY>MONTH(SM(0)) THEN RETURN
  195. 2040 IF MOUSE(2,1)=0 THEN 2170
  196. 2050 KSW=1 : MZ=0 : PC=10-(RX=0)*2 : FOR Y=1 TO MQ
  197. 2060    IF CYEA(Y)=YEAR AND CMON(Y)=MONTH AND CDAY(Y)=TODAY THEN PC=12+(RX=0)*2 : MZ=Y
  198. 2070 NEXT
  199. 2080 TIY=WSY(1)+RY*24+60 : TIX=WSX(1)+RX*40+8
  200. 2090 LINE (TIX,TIY)-(TIX+31,TIY+15),PSET,%PC,BF
  201. 2100 HI$=AKCNV$(RIGHT$(STR$(TODAY),2))
  202. 2110 SYMBOL(TIX,TIY),HI$,1,1,%7,,,1
  203. 2120 PAINT@(WSX(1)+4,WSY(1)+4),%9 : GET@A (WSX(1),WSY(1))-(WEX(1)-6,WEY(1)-6),BG%,MBG(WIN(1)) : PAINT@(WSX(1)+4,WSY(1)+4),%5
  204. 2130 IF MZ=0 THEN MQ=MQ+1 : IF MQ=1001 THEN MQ=MQ-1 : ERROR 21 ELSE CYEA(MQ)=YEAR : CMON(MQ)=MONTH : CDAY(MQ)=TODAY : RETURN
  205. 2140 FOR Y=MZ TO MQ
  206. 2150    CYEA(Y)=CYEA(Y+1) : CMON(Y)=CMON(Y+1) : CDAY(Y)=CDAY(Y+1)
  207. 2160 NEXT : MQ=MQ-1 : RETURN
  208. 2170 OSX=RX*40+WSX(1)+8 : OSY=RY*24+WSY(1)+60 : OEX=OSX+31 : OEY=OSY+15
  209. 2180 IF SD(1)<>TODAY OR SM(1)<>MONTH OR SY(1)<>YEAR THEN K1=1 ELSE K1=0
  210. 2190 GOSUB *WEEK : YEAR2=YEAR : MONTH2=MONTH : TODAY2=TODAY : WEEK2=WEEK : YEAR=SY(2) : MONTH=SM(2) : TODAY=SD(2) : GOSUB *WEEK
  211. 2200 IF YEAR2=YEAR AND MONTH2=MONTH AND TODAY2-WEEK2=TODAY-WEEK THEN K2=0 ELSE K2=1
  212. 2210 FOR I=0 TO 2 : SY(I)=YEAR2 : SM(I)=MONTH2 : SD(I)=TODAY2 : NEXT
  213. 2220 KK=K2 : WIN=4 : GOSUB 1830 : KK=K1 : WIN=3 : GOSUB 1830 : KK=0
  214. 2230 RETURN
  215. 2240 '
  216. 2250 '時間割をくりっく
  217. 2260 '
  218. 2270 RX=(MX-WSX(1)-24) MOD 52 : RY=(MY-WSY(1)-60) MOD 20
  219. 2280 IF RX<0 OR RY<0 OR RX>47 OR RY>15 THEN RETURN
  220. 2290 RX=(MX-WSX(1)-24) \ 52 : RY=(MY-WSY(1)-60) \ 20
  221. 2300 IF RX<0 OR RY<0 OR RX>5 OR RY>5 THEN RETURN
  222. 2310 OSX=WSX(1)+RX*52+24 : OSY=WSY(1)+60+20*RY : OEX=OSX+47 : OEY=OSY+15
  223. 2320 ZZWI=RX : ZZTI=RY : WSX=208 : WSY=396 : WIN=8 : GOSUB *WIN開 : RETURN
  224. 2330 '
  225. 2340 '入力ウィンドウをくりっく。
  226. 2350 '
  227. 2360 RX=(MX-WSX(1)-269) MOD 48 : RY=MY-WSY(1)-41
  228. 2370 IF RX<0 OR RY<0 OR RX>39 OR RY>15 THEN RETURN
  229. 2380 RX=(MX-WSX(1)-269) \ 48 : IF RX<0 OR RX>2+(YMD<>0)*2 THEN RETURN
  230. 2390 PUT@A (WSX+RX*48+268,WSY+40)-(WSX+RX*48+315,WSY+63),MSG%,PSET,,,,1440+576*RX
  231. 2400 GOSUB *WAIT
  232. 2410 PUT@A (WSX+RX*48+268,WSY+40)-(WSX+RX*48+315,WSY+63),MSG%,PSET,,,,1152+576*RX : IF YMD<>0 THEN 2600 ELSE IF RX=1 AND SCA$(SMF,10)<>"" THEN RETURN
  233. 2420 IF RX<>2 THEN GOSUB *KON : LOCATE 27,23 : COLOR 0,,,4 : LINE INPUT "",IN$ : GOSUB *KOFF : IF IN$="" THEN RX=3
  234. 2430 IF RX<2 AND WIN(2)=3 THEN GOSUB *KON : LOCATE 27,23 : COLOR 0,,,4 : LINE INPUT "何日前から告知?",DDD$ : DDD=VAL(DDD$) : IF DDD<=0 THEN DDD=1
  235. 2440 GOSUB *KOFF : WSX=OSX : WSY=OSY : WEX=OEX : WEY=OEY
  236. 2450 OSX=WSX(1) : OSY=WSY(1) : OEX=WEX(1)-6 : OEY=WEY(1)-6
  237. 2460 GOSUB *WIN閉 : PP=1 : GOSUB *WIN変 : IF RX=3 THEN RETURN
  238. 2470 IF WIN(1)=6 THEN 2700 ELSE IF WIN(1)<>3 THEN RETURN
  239. 2480 CLS 1 : IF LEN(IN$)>32 THEN IN$=LEFT$(IN$,32)
  240. 2490 ASS=11 : KQS=0 : FOR Y=10 TO 1 STEP -1 : IF SCA$(SMF,Y)="" THEN ASS=Y
  241. 2500 NEXT : IF RX=1 THEN IF SCA$(SMF,SMY)="" THEN RX=0
  242. 2510 IF RX=0 THEN KQS=1 : IF SCA$(SMF,SMY)="" AND ASS<11 THEN SCA$(SMF,ASS)=IN$ : CK(SMF,ASS)=0 : DD(SMF,ASS)=DDD ELSE SCA$(SMF,SMY)=IN$ : CK(SMF,SMY)=0 : DD(SMF,SMY)=DDD
  243. 2520 IF RX=1 THEN IF SCA$(SMF,10)="" THEN KQS=1 : FOR Y=ASS-1 TO SMY STEP -1 : SCA$(SMF,Y+1)=SCA$(SMF,Y) : CK(SMF,Y+1)=CK(SMF,Y) : DD(SMF,Y+1)=DD(SMF,Y) : NEXT : SCA$(SMF,SMY)=IN$ : CK(SMF,SMY)=0 : DD(SMF,SMY)=DDD
  244. 2530 IF RX<>2 OR SCA$(SMF,SMY)="" THEN 2570 ELSE IF ASS>10 THEN ASS=10 : LJK=1 ELSE LJK=0
  245. 2540 KQS=1 : IF SMY<10 THEN FOR Y=SMY+1 TO ASS : SCA$(SMF,Y-1)=SCA$(SMF,Y) : CK(SMF,Y-1)=CK(SMF,Y) : DD(SMF,Y-1)=DD(SMF,Y) : NEXT
  246. 2550 IF LJK=1 THEN SCA$(SMF,10)="" : CK(SMF,10)=0 : DD(SMF,10)=0 : LJK=0
  247. 2560 IF SCA$(SMF,1)="" THEN FOR Y=SMF TO MG : SYEA(Y)=SYEA(Y+1) : SMON(Y)=SMON(Y+1) : SDAY(Y)=SDAY(Y+1) : FOR Y2=1 TO 10 : SCA$(Y,Y2)=SCA$(Y+1,Y2) : CK(Y,Y2)=CK(Y+1,Y2) : DD(Y,Y2)=DD(Y+1,Y2) : NEXT : NEXT : MG=MG-1
  248. 2570 IF KQS=1 AND MFG=1 THEN MG=MG+1 : IF MG=501 THEN MG=MG-1 : ERROR 21 ELSE MFG=0 : SYEA(MG)=SY(1) : SMON(MG)=SM(1) : SDAY(MG)=SD(1)
  249. 2580 IF KQS=1 THEN KSS=1 : WSX=WSX(1) : WSY=WSY(1) : WEX=WEX(1) : WEY=WEY(1) : WIN=WIN(1) : GOSUB 3830
  250. 2590 RETURN
  251. 2600 GOSUB *KON : LOCATE 27,23 : COLOR 0,,,4 : LINE INPUT "表示したい年:",AY$ : GOSUB *KOFF : AY=VAL(AY$) : IF AY<1583 OR AY>9998 THEN 2640
  252. 2610 GOSUB *KON : LOCATE 27,23 : COLOR 0,,,4 : LINE INPUT "表示したい月:",AM$ : GOSUB *KOFF : AM=VAL(AM$) : IF AM<1 OR AM>12 THEN 2640
  253. 2620 IF YMD=1 THEN JNJ=1 : GOTO 2640 ELSE YEAR=AY : MONTH=AM : TODAY=1 : GOSUB *WEEK
  254. 2630 GOSUB *KON : LOCATE 27,23 : COLOR 0,,,4 : LINE INPUT "表示したい日:",AD$ : GOSUB *KOFF : AD=VAL(AD$) : IF AD>0 AND AD<=MONTH(AM) THEN JNJ=1
  255. 2640 IF JNJ=1 THEN SY(WIN(2)-2)=AY : SM(WIN(2)-2)=AM : IF YMD=2 THEN SD(WIN(2)-2)=AD
  256. 2650 SWAP OSX,WSX : SWAP OSY,WSY : SWAP OEX,WEX : SWAP OEY,WEY : QSX=WSX : QSY=WSY : QEX=WEX : QEY=WEY
  257. 2660 GOSUB *WIN閉 : YMD=0 : JNJ=0 : PP=1 : WSX=QSX : WSY=QSY : WEX=QEX : WEY=QEY : GOSUB *WIN変 : RETURN
  258. 2670 *KON : WHILE INKEY$<>"" : WEND : CONSOLE ,,2 : RETURN
  259. 2680 *KOFF : CONSOLE ,,0 : CLS 1 : RETURN
  260. 2690 '
  261. 2700 WSX=WSX(1) : WSY=WSY(1) : WEX=WEX(1) : WEY=WEY(1) : WIN=WIN(1)
  262. 2710 IF LEN(IN$)>6 THEN IN$=LEFT$(IN$,6)
  263. 2720 IF RX=0 OR RX=1 THEN ZIKAN$(ZZWI,ZZTI)=IN$ ELSE ZIKAN$(ZZWI,ZZTI)="" : IN$=""
  264. 2730 IF LEN(IN$)<5 THEN IN$=STRING$(3-INT(LEN(IN$)/2)," ")+IN$
  265. 2740 LINE(WSX+24+ZZWI*52,WSY+60+ZZTI*20)-(WSX+71+ZZWI*52,WSY+75+ZZTI*20),PSET,%12,BF
  266. 2750 SYMBOL(WSX+24+ZZWI*52,WSY+60+ZZTI*20),IN$,1,1,%7,,,1
  267. 2760 PAINT@(WSX+4,WSY+4),%9 : GET@A (WSX,WSY)-(WEX-6,WEY-6),BG%,MBG(WIN) : PAINT@(WSX+4,WSY+4),%5
  268. 2770 RETURN
  269. 2780 '
  270. 2790 '環境をくりっく
  271. 2800 '
  272. 2810 RX=MX-WSX(1)-8 : RY=MY-WSY(1)-36
  273. 2820 IF RX<0 OR RX>63 OR RY<0 OR RY>63 THEN 2880 
  274. 2830 RX=(MX-WSX(1)-8) \ 16 : RY=(MY-WSY(1)-36) \ 16 : ECC=RY*4+RX
  275. 2840 LINE (WSX(1)+80,WSY(1)+36)-(WSX(1)+95,WSY(1)+99),PSET,%0,BF,%ECC
  276. 2850 FOR C=0 TO 2 : LINE (WSX(1)+126,WSY(1)+37+C*24)-(WSX(1)+141,WSY(1)+52+C*24),PSET,%12,BF : SYMBOL (WSX(1)+126,WSY(1)+37+C*24),RIGHT$(STR$(PAL(ECC,C)),2),1,1,%7,,,1 : NEXT
  277. 2860 PAINT@(WSX(1)+4,WSY(1)+4),%9 : GET@A (WSX(1),WSY(1))-(WEX(1)-6,WEY(1)-6),BG%,MBG(WIN(1)) : PAINT@(WSX(1)+4,WSY(1)+4),%5
  278. 2870 RETURN
  279. 2880 RX=(MX-WSX(1)-105) MOD 40 : RY=(MY-WSY(1)-37) MOD 24
  280. 2890 IF RX<0 OR RX>15 OR RY<0 OR RY>15 THEN 2980
  281. 2900 RX=(MX-WSX(1)-105) \ 40 : RY=(MY-WSY(1)-37) \ 24 : IF RX<0 OR RY<0 OR RX>1 OR RY>2 THEN 2980
  282. 2910 PUT@A (RX*40+WSX(1)+104,WSY(1)+36+RY*24)-(RX*40+WSX(1)+127,WSY(1)+59+RY*24),ICN%,PSET,,,,2448+RX*288
  283. 2920 GOSUB *WAIT
  284. 2930 PUT@A (RX*40+WSX(1)+104,WSY(1)+36+RY*24)-(RX*40+WSX(1)+127,WSY(1)+59+RY*24),ICN%,PSET,,,,2304+RX*288
  285. 2940 PA=PAL(ECC,RY) : PA=PA+RX*2-1 : IF PA<0 THEN PA=0 ELSE IF PA>15 THEN PA=15
  286. 2950 PAL(ECC,RY)=PA : PALETTE ECC,[PAL(ECC,1)*16,PAL(ECC,0)*16,PAL(ECC,2)*16]
  287. 2960 LINE (WSX(1)+126,WSY(1)+37+RY*24)-(WSX(1)+141,WSY(1)+52+RY*24),PSET,%12,BF : SYMBOL (WSX(1)+126,WSY(1)+37+RY*24),RIGHT$(STR$(PAL(ECC,RY)),2),1,1,%7,,,1
  288. 2970 MMJ=1 : GOTO 2860
  289. 2980 RX=(MX-WSX(1)-129) MOD 40 : RY=MY-WSY(1)-117
  290. 2990 IF RX<0 OR RX>15 OR RY<0 OR RY>15 THEN RETURN
  291. 3000 RX=(MX-WSX(1)-129) \ 40 : IF RX<0 OR RX>1 THEN RETURN
  292. 3010 PUT@A (RX*40+WSX(1)+128,WSY(1)+116)-(RX*40+WSX(1)+151,WSY(1)+139),ICN%,PSET,,,,2448+RX*288
  293. 3020 GOSUB *WAIT
  294. 3030 PUT@A (RX*40+WSX(1)+128,WSY(1)+116)-(RX*40+WSX(1)+151,WSY(1)+139),ICN%,PSET,,,,2304+RX*288
  295. 3040 MMS=MMS+RX*2-1 : IF MMS<1 THEN MMS=1 ELSE IF MMS>16 THEN MMS=16
  296. 3050 MOUSE 3,0,17-MMS : MOUSE 3,1,17-MMS
  297. 3060 LINE (WSX(1)+150,WSY(1)+117)-(WSX(1)+165,WSY(1)+132),PSET,%12,BF
  298. 3070 SYMBOL (WSX(1)+150,WSY(1)+117),RIGHT$(STR$(MMS),2),1,1,%7,,,1 : MMJ=1 : GOTO 2860
  299. 3080 '
  300. 3090 '情報ウィンドウをくりっく。
  301. 3100 '
  302. 3110 RX=MX-WSX(1)-8 : RY=(MY-WSY(1)-36) MOD 24
  303. 3120 IF RX<0 OR RX>351 OR RY<0 OR RY>15 THEN RETURN
  304. 3130 RY=(MY-WSY(1)-36) \ 24 : RGP=RY+(IP-1)*5+1 : IF RGP>INI THEN RETURN
  305. 3140 YEAR=SYEA(INN(RGP)) : MONTH=SMON(INN(RGP)) : TODAY=SDAY(INN(RGP))
  306. 3150 IF SY(1)=YEAR AND SM(1)=MONTH AND SD(1)=TODAY THEN KK=0 ELSE KK=1
  307. 3160 SY(1)=YEAR : SM(1)=MONTH : SD(1)=TODAY
  308. 3170 OSX=WSX(1)+8 : OSY=WSY(1)+36+RY*24 : OEX=OSX+351 : OEY=OSY+15
  309. 3180 WIN=3 : GOSUB 1830 : KK=0 : RETURN
  310. 3190 '
  311. 3200 '確認ウィンドゥを押したとき
  312. 3210 '
  313. 3220 RX=(MX-WSX(1)-24) MOD 144 : RY=(MY-WSY(1)-68) \ 16
  314. 3230 IF RX<0 OR RY<0 OR RX>39 OR RY>0 THEN RETURN
  315. 3240 RX=(MX-WSX(1)-24) \ 144 : TIX=WSX(1)+24+144*RX : IF RET=1 AND RX=0 THEN RETURN
  316. 3250 PUT@A (TIX,WSY(1)+68)-(TIX+47,WSY(1)+91),MSG%,PSET,,,,576*(RX-RET)+288
  317. 3260 GOSUB *WAIT
  318. 3270 PUT@A (TIX,WSY(1)+68)-(TIX+47,WSY(1)+91),MSG%,PSET,,,,576*(RX-RET)
  319. 3280 WSX=WSX(2)+9 : WSY=WSY(2)+9 : WEX=WSX+15 : WEY=WSY+15
  320. 3290 OSX=WSX(1) : OSY=WSY(1) : OEX=WEX(1)-6 : OEY=WEY(1)-6
  321. 3300 GOSUB *WIN閉 : PP=1 : GOSUB *WIN変 : IF RX=1 AND RET=0 THEN YN=RX : RETURN ELSE IF RET=1 AND SVSV=0 THEN 3560
  322. 3310 KILL"CUSTOM.DAT" : OPEN "O",#1,"CUSTOM.DAT" : PRINT #1,"KANATSU"
  323. 3320 FOR CH=1 TO MAXWIN
  324. 3330    PRINT #1,WIN(CH);WSX(CH);WSY(CH)
  325. 3340 NEXT : CLOSE
  326. 3350 KILL"スケジュール.DAT" : OPEN "O",#1,"スケジュール.DAT" : PRINT #1,"KANATSU"
  327. 3360 FOR CH=1 TO MG
  328. 3370    FOR RF=10 TO 1 STEP -1 : IF SCA$(CH,RF)="" THEN SN=RF
  329. 3380    NEXT : SN=SN-1 : IF SN<1 THEN 3410
  330. 3390    PRINT #1,SYEA(CH);SMON(CH);SDAY(CH);SN
  331. 3400    FOR Y=1 TO SN : PRINT #1,DD(CH,Y);CK(CH,Y);SCA$(CH,Y) : NEXT
  332. 3410 NEXT : CLOSE
  333. 3420 KILL"時間割.DAT" : OPEN "O",#1,"時間割.DAT" : PRINT #1,"KANATSU"
  334. 3430 FOR DA=0 TO 5
  335. 3440    FOR TI=0 TO 5
  336. 3450       PRINT #1,ZIKAN$(DA,TI)
  337. 3460    NEXT
  338. 3470 NEXT : CLOSE
  339. 3480 KILL"休日.DAT" : OPEN "O",#1,"休日.DAT" : PRINT #1,"KANATSU"
  340. 3490 FOR CH=1 TO MQ
  341. 3500    PRINT #1,CYEA(CH);CMON(CH);CDAY(CH)
  342. 3510 NEXT : CLOSE
  343. 3520 KILL"環境.DAT" : OPEN "O",#1,"環境.DAT" : PRINT #1,"KANATSU"
  344. 3530 FOR CH=0 TO 15
  345. 3540    PRINT #1,PAL(CH,0);PAL(CH,1);PAL(CH,2)
  346. 3550 NEXT : PRINT #1,MMS : CLOSE
  347. 3560 FOR C=1 TO 16 : FOR CC=0 TO 15 : FOR PAL=0 TO 2 : CCC(PAL)=PAL(CC,PAL)*16+(15-PAL(CC,PAL))*C : NEXT
  348. 3570 PALETTE CC,[CCC(1),CCC(0),CCC(2)] : NEXT : FOR I=0 TO 1999 : NEXT : NEXT
  349. 3580 CLS : END
  350. 3590 '
  351. 3600 *WIN開
  352. 3610 '
  353. 3620 FOR OW=MAXWIN TO 1 STEP -1
  354. 3630    WIN(OW+1)=WIN(OW) : WSX(OW+1)=WSX(OW) : WSY(OW+1)=WSY(OW)
  355. 3640    WEX(OW+1)=WEX(OW) : WEY(OW+1)=WEY(OW)
  356. 3650 NEXT
  357. 3660 MAXWIN=MAXWIN+1 : WEX=WSX+MSX(WIN)-7 : WEY=WSY+MSY(WIN)-7
  358. 3670 GOSUB *WIN変 : WEX=WEX+6 : WEY=WEY+6
  359. 3680 IF MAXWIN>1 THEN PAINT@ (WSX(2)+4,WSY(2)+4),%9
  360. 3690 LINE (WSX+6,WSY+6)-(WEX,WEY),PSET,%4,BF
  361. 3700 LINE (WSX,WSY)-(WEX-6,WEY-6),PSET,%6,BF
  362. 3710 LINE (WSX+3,WSY+3)-(WEX-9,WSY+31),PSET,%9,BF
  363. 3720 PUT@A (WSX+8,WSY+8)-(WSX+31,WSY+31),ICN%,PSET
  364. 3730 TIX=WSX+32+(MSX(WIN)-46-ST(WIN)*48)/2-24*3
  365. 3740 MSX=TIX+24*3-LEN(WIN$(WIN))*4
  366. 3750 FOR I=0 TO 5
  367. 3760    IF I>0 AND I<5 THEN IG=144 : GOTO 3780
  368. 3770    IF I=5 THEN IG=288 ELSE IG=0
  369. 3780    PUT@A (TIX+I*24,WSY+6)-(TIX+I*24+23,WSY+29),ICN%,PSET,,,,1872+IG
  370. 3790 NEXT
  371. 3800 SYMBOL (MSX,WSY+10),WIN$(WIN),1,1,%15,,,1
  372. 3810 IF ST(WIN)=1 THEN PUT@A (WEX-63,WSY+8)-(WEX-40,WSY+31),ICN%,PSET,,,,1008 : PUT@A (WEX-39,WSY+8)-(WEX-16,WSY+31),ICN%,PSET,,,,1440
  373. 3820 LINE (WSX+3,WSY+32)-(WEX-9,WSY+32),PSET,%4
  374. 3830 IF LXW=0 OR KSS=0 OR WIN<>2 THEN LINE (WSX+3,WSY+33)-(WEX-9,WEY-9),PSET,%12,BF
  375. 3840 '
  376. 3850 'ウィンドゥの中身を書き換える
  377. 3860 '
  378. 3870 ON WIN GOTO 3910,4140,4440,4650,5060,4910,5180,5310,5340
  379. 3880 '
  380. 3890 'メニュー作成
  381. 3900 '
  382. 3910 FOR Y=0 TO 1
  383. 3920    FOR X=0 TO 3
  384. 3930       IF Y=1 AND X>1 THEN 3970
  385. 3940       PUT@A (WSX+X*56+20,WSY+Y*64+36)-(WSX+X*56+51,WSY+Y*64+67),MNU%,PSET,,,,512*(Y*4+X)
  386. 3950       WIN$=WIN$(Y*4+X+2) : IF LEN(WIN$)>8 THEN WIN$=KACNV$(WIN$)
  387. 3960       SYMBOL (WSX+X*56+36-3*LEN(WIN$),WSY+Y*64+72),WIN$,.75!,.75!,%7
  388. 3970    NEXT
  389. 3980 NEXT : SYMBOL (WSX+152,WSY+98),"TOWNS",.75!,.75!,%7
  390. 3990 SYMBOL (WSX+140,WSY+116),"まねーじゃー★",.75!,.75!,%7
  391. 4000 YEAR$=MID$(STR$(SY(3)),2,4)+"年"
  392. 4010 MONTH$=RIGHT$("0"+RIGHT$(STR$(SM(3)),2),2)+"月"
  393. 4020 SDAY$=RIGHT$("0"+RIGHT$(STR$(SD(3)),2),2)+"日"
  394. 4030 TODAY=SD(3) : MONTH=SM(3) : YEAR=SY(3)
  395. 4040 GOSUB *WEEK : SDAY$=SDAY$+"("+WEEK$(WEEK)+")"
  396. 4050 PC=12+(WEEK=0)*2 : FOR Y=1 TO MQ
  397. 4060    IF CYEA(Y)=YEAR AND CMON(Y)=MONTH AND CDAY(Y)=TODAY THEN PC=10-(WEEK=0)*2
  398. 4070 NEXT : LINE (WSX+128,WSY+134)-(WSX+235,WSY+145),PSET,%PC,BF
  399. 4080 SYMBOL(WSX+128,WSY+134),YEAR$+MONTH$+SDAY$,.75!,.75!,%2 : GOTO 5400
  400. 4090 '
  401. 4100 'カレンダー作成
  402. 4110 '
  403. 4120 IF LXW=1 AND KSS=1 THEN 4170
  404. 4130 MZ=0 : FOR Y=1 TO MQ
  405. 4140 FOR WEEK=0 TO 6
  406. 4150    SYMBOL(WEEK*40+WSX+24,WSY+36),WEEK$(WEEK),1,1,%2,,,1
  407. 4160 NEXT
  408. 4170 TODAY=1 : YEAR=SY(0) : MONTH=SM(0) : GOSUB *WEEK : WS=WEEK
  409. 4180 IF LXW=1 AND KSS=1 THEN FOR CH=1 TO MONTH(MONTH) : TIX=((WS+CH-1) MOD 7)*40+WSX+3 : TIY=WSY+((WS+CH-1)\7)*24+66 : LINE (TIX,TIY)-(TIX+3,TIY+3),PSET,%12,BF : NEXT : GOTO 4280
  410. 4190 MZ=0 : FOR Y=1 TO MQ
  411. 4200    IF CYEA(Y)=YEAR AND CMON(Y)=MONTH THEN TIX=((WS+CDAY(Y)-1) MOD 7)*40+WSX+8 : TIY=WSY+((WS+CDAY(Y)-1)\7)*24+60 : LINE (TIX,TIY)-(TIX+31,TIY+15),PSET,%10,BF
  412. 4210 NEXT
  413. 4220 FOR CH=1 TO MONTH(MONTH)
  414. 4230    HI$=AKCNV$(RIGHT$(STR$(CH),2))
  415. 4240    IF WEEK=0 THEN TIX=WEEK*40+WSX+8 : TIY=WSY+((CH+WS-1)\7)*24+60 : GET@A (TIX,TIY)-(TIX,TIY),V% : LINE (TIX,TIY)-(TIX+31,TIY+15),PSET,%10-(V%(0)=10)*2,BF
  416. 4250    SYMBOL(WEEK*40+WSX+8,WSY+((CH+WS-1)\7)*24+60),HI$,1,1,%7,,,1
  417. 4260    WEEK=(WEEK+1) MOD 7
  418. 4270 NEXT
  419. 4280 MF=0 : FOR Y=1 TO MG
  420. 4290    IF SYEA(Y)<>YEAR OR SMON(Y)<>MONTH THEN 4330
  421. 4300    QS=0 : FOR Q=1 TO 10 : IF SCA$(Y,Q)="" THEN Q=11 ELSE IF CK(Y,Q)=0 THEN QS=1 : Q=11
  422. 4310    NEXT : IF QS=0 THEN GOTO 4330
  423. 4320    TIX=((WS+SDAY(Y)-1) MOD 7)*40+WSX+3 : TIY=WSY+((WS+SDAY(Y)-1)\7)*24+66 : LINE (TIX,TIY)-(TIX+3,TIY+3),PSET,%5,BF
  424. 4330 NEXT
  425. 4340 IF LXW=1 AND KSS=1 THEN 4380
  426. 4350 YEAR$=MID$(STR$(YEAR),2,4)+"年"
  427. 4360 MONTH$=RIGHT$("0"+RIGHT$(STR$(MONTH),2),2)+"月"
  428. 4370 SYMBOL(WSX+200,WSY+180),YEAR$+MONTH$,1,1,%2,,,1
  429. 4380 IF SY(0)<>SY(3) OR SM(0)<>SM(3) THEN GOTO 5400
  430. 4390 TIX=((SD(3)+WS-1) MOD 7)*40+WSX+4 : TIY=((SD(3)+WS-1) \ 7)*24+WSY+56
  431. 4400 LINE (TIX,TIY)-(TIX+39,TIY+23),PSET,%5,B : GOTO 5400
  432. 4410 '
  433. 4420 'スケジュール作成
  434. 4430 '
  435. 4440 YEAR$=MID$(STR$(SY(1)),2,4)+"年"
  436. 4450 MONTH$=RIGHT$("0"+RIGHT$(STR$(SM(1)),2),2)+"月"
  437. 4460 SDAY$=RIGHT$("0"+RIGHT$(STR$(SD(1)),2),2)+"日"
  438. 4470 TODAY=SD(1) : MONTH=SM(1) : YEAR=SY(1)
  439. 4480 GOSUB *WEEK : SDAY$=SDAY$+"("+WEEK$(WEEK)+")"
  440. 4490 PC=12+(WEEK=0)*2 : FOR Y=1 TO MQ
  441. 4500    IF CYEA(Y)=YEAR AND CMON(Y)=MONTH AND CDAY(Y)=TODAY THEN PC=10-(WEEK=0)*2
  442. 4510 NEXT
  443. 4520 LINE (WSX+76,WSY+36)-(WSX+219,WSY+51),PSET,%PC,BF
  444. 4530 SYMBOL (WSX+76,WSY+36),YEAR$+MONTH$+SDAY$,1,1,%2,,,1
  445. 4540 MF=0 : FOR Y=1 TO MG
  446. 4550    IF SYEA(Y)=YEAR AND SMON(Y)=MONTH AND SDAY(Y)=TODAY THEN MF=Y : Y=MG+1
  447. 4560 NEXT : IF MF=0 THEN GOTO 5400
  448. 4570 FOR Y=1 TO 10
  449. 4580    IF SCA$(MF,Y)="" THEN 4610
  450. 4590    PUT@A (WSX+6,WSY+36+Y*24)-(WSX+29,WSY+59+Y*24),ICN%,PSET,,,,720-CK(MF,Y)*288
  451. 4600    SYMBOL (WSX+34,WSY+37+Y*24),SCA$(MF,Y),1,1,%7,,,1
  452. 4610 NEXT : GOTO 5400
  453. 4620 '
  454. 4630 '週間作成
  455. 4640 '
  456. 4650 YEAR=SY(2) : MONTH=SM(2) : TODAY=SD(2) : GOSUB *WEEK : TODAY=TODAY-WEEK : IIDAY=RDAY-WEEK
  457. 4660 LINE (WSX+8,WSY+60)-(WSX+367,WSY+75),PSET,%10,BF
  458. 4670 FOR Y=0 TO 6
  459. 4680    IF TODAY+Y>MONTH(MONTH) THEN TODAY=TODAY-MONTH(MONTH) : MONTH=MONTH+1 : IF MONTH>12 THEN YEAR=YEAR+1 : MONTH=1
  460. 4690    IF TODAY+Y<1 THEN MONTH=MONTH-1 : IF MONTH<1 THEN YEAR=YEAR-1 : MONTH=12 : TODAY=31+TODAY+Y ELSE TODAY=MONTH(MONTH)+TODAY+Y
  461. 4700    FOR U=1 TO MQ
  462. 4710       IF CYEA(U)=YEAR AND CMON(U)=MONTH AND CDAY(U)=TODAY+Y THEN LINE (WSX+8,WSY+60+Y*24)-(WSX+367,WSY+75+Y*24),PSET,%10-(Y=0)*2,BF : U=MQ+1
  463. 4720    NEXT
  464. 4730    YEAR$=MID$(STR$(YEAR),2,4)+"年"
  465. 4740    MONTH$=RIGHT$("0"+RIGHT$(STR$(MONTH),2),2)+"月"
  466. 4750    SDAY$=RIGHT$("0"+RIGHT$(STR$(TODAY+Y),2),2)+"日"
  467. 4760    IF Y=0 OR Y=6 THEN SYMBOL(WSX+64-(Y=6)*128,WSY+36),YEAR$+MONTH$+SDAY$+LEFT$("≫",-(Y=0)*2),1,1,%2,,,1
  468. 4770    SYMBOL (WSX+8,WSY+60+Y*24),MONTH$+SDAY$+"("+WEEK$(Y)+")",1,1,%2,,,1
  469. 4780 NEXT
  470. 4790 YEAR=SY(3) : MONTH=SM(3) : TODAY=SD(3) : GOSUB *WEEK : IF RDAY-IIDAY>=0 AND RDAY-IIDAY<7 THEN LINE (WSX+4,WSY+56+(RDAY-IIDAY)*24)-(WSX+371,WSY+79+(RDAY-IIDAY)*24),PSET,%5,B
  471. 4800 FOR MF=1 TO MG
  472. 4810    YEAR=SYEA(MF) : MONTH=SMON(MF) : TODAY=SDAY(MF) : GOSUB *WEEK : IF RDAY-IIDAY<0 OR RDAY-IIDAY>6 THEN 4860
  473. 4820    SG=1 : WHILE SG<11
  474. 4830       IF SCA$(MF,SG)="" THEN SG=10 ELSE IF CK(MF,SG)=0 THEN 4850
  475. 4840    SG=SG+1 : WEND : GOTO 4860
  476. 4850    SYMBOL (WSX+112,WSY+60+(RDAY-IIDAY)*24),SCA$(MF,SG),1,1,%7,,,1
  477. 4860 NEXT
  478. 4870 GOTO 5400
  479. 4880 '
  480. 4890 '時間割作成
  481. 4900 '
  482. 4910 FOR Y=0 TO 7 : LINE (WSX+10,WSY+38+Y*20)-(WSX+334,WSY+38+Y*20),PSET,%9,,&HAAAA : NEXT
  483. 4920 FOR Y=0 TO 6 : LINE (WSX+Y*52+22,WSY+38)-(WSX+Y*52+22,WSY+178),PSET,%9,,&HAAAA : NEXT
  484. 4930 LINE (WSX+10,WSY+38)-(WSX+10,WSY+178),PSET,%9,,&HAAAA
  485. 4940 FOR WE=0 TO 5
  486. 4950    SYMBOL(WSX+40+WE*52,WSY+40),WEEK$(WE+1),1,1,%2,,,1
  487. 4960    FOR TI=0 TO 5
  488. 4970       IF WE=0 THEN SYMBOL(WSX+12,WSY+60+TI*20),HEX$(TI+1),1,1,%2,,,1
  489. 4980       A$=ZIKAN$(WE,TI) : IF LEN(A$)>6 THEN A$=LEFT$(A$,6)
  490. 4990       IF LEN(A$)<5 THEN A$=STRING$(3-INT(LEN(A$)/2)," ")+A$
  491. 5000       SYMBOL(WSX+24+WE*52,WSY+60+TI*20),A$,1,1,%7,,,1
  492. 5010    NEXT
  493. 5020 NEXT : GOTO 5400
  494. 5030 '
  495. 5040 '情報作成
  496. 5050 '
  497. 5060 IF INI=0 THEN 5400 ELSE IF (IP-1)*5+1>INI THEN IP=1
  498. 5070 IF SCA$(INN(IP*5+1),INH(IP*5+1))<>"" THEN LINE(WSX+360,WSY+136)-(WSX+363,WSY+147),PSET,%9,BF
  499. 5080 FOR LLK=(IP-1)*5+1 TO IP*5 : IF SCA$(INN(LLK),INH(LLK))="" THEN 5130
  500. 5090 IF IND(LLK)=0 THEN IM$="は 本日 です" ELSE IF IND(LLK)=1 THEN IM$="は 明日 です" ELSE IF IND(LLK)=2 THEN IM$="は明後日です"
  501. 5100 IF IND(LLK)>2 THEN IM$="まで"+RIGHT$("      "+STR$(IND(LLK)),6)+"日" ELSE IF IND(LLK)<0 THEN IM$=RIGHT$("     "+STR$(ABS(IND(LLK))),6)+"日経過"
  502. 5110 SYMBOL (WSX+8,WSY+36+(LLK-(IP-1)*5-1)*24),SCA$(INN(LLK),INH(LLK)),1,1,%7,,,1
  503. 5120 SYMBOL (WSX+264,WSY+36+(LLK-(IP-1)*5-1)*24),IM$,1,1,%2,,,1
  504. 5130 NEXT : IF IP<>1 THEN LINE (WSX+360,WSY+36)-(WSX+363,WSY+47),PSET,%9,BF
  505. 5140 GOTO 5400
  506. 5150 '
  507. 5160 '環境作成
  508. 5170 '
  509. 5180 FOR Y=0 TO 3 : FOR C=0 TO 3 : LINE (WSX+8+C*16,WSY+36+Y*16)-(WSX+23+C*16,WSY+51+Y*16),PSET,%Y*4+C,BF : NEXT : NEXT
  510. 5190 LINE (WSX+7,WSY+35)-(WSX+72,WSY+100),PSET,%0,B
  511. 5200 LINE (WSX+80,WSY+36)-(WSX+95,WSY+99),PSET,%0,BF,%15 : ECC=15
  512. 5210 FOR Y=0 TO 2 : FOR C=0 TO 1 : PUT@A (WSX+104+C*40,WSY+36+Y*24)-(WSX+127+C*40,WSY+59+Y*24),ICN%,PSET,,,,2304+288*C
  513. 5220 NEXT : SYMBOL (WSX+176,WSY+37+Y*24),S$(Y),1,1,%2,,,1 : NEXT
  514. 5230 FOR C=0 TO 2 : SYMBOL (WSX+126,WSY+37+C*24),RIGHT$(STR$(PAL(ECC,C)),2),1,1,%7,,,1 : NEXT
  515. 5240 SYMBOL (WSX+8,WSY+117),"マウス移動速度",1,1,%2,,,1
  516. 5250 FOR C=0 TO 1 : PUT@A (WSX+128+C*40,WSY+116)-(WSX+151+C*40,WSY+139),ICN%,PSET,,,,2304+288*C : NEXT
  517. 5260 SYMBOL (WSX+150,WSY+117),RIGHT$(STR$(MMS),2),1,1,%7,,,1
  518. 5270 GOTO 5400
  519. 5280 '
  520. 5290 '入力ウィンドゥ
  521. 5300 '
  522. 5310 FOR I=0 TO 2+(YMD<>0)*2 : PUT@A (WSX+I*48+268,WSY+40)-(WSX+I*48+315,WSY+63),MSG%,PSET,,,,1152+576*I : NEXT
  523. 5320 LINE(WSX+7,WSY+40)-(WSX+264,WSY+57),PSET,%4,B : GOTO 5400
  524. 5330 '
  525. 5340 '確認ウィンドゥ
  526. 5350 '
  527. 5360 SYMBOL (WSX+8+112-LEN(MES$)*4,WSY+44),MES$,1,1,%2,,,1
  528. 5370 IF RET=0 THEN PUT@A (WSX+24,WSY+68)-(WSX+71,WSY+91),MSG%,PSET
  529. 5380 PUT@A (WEX-77,WSY+68)-(WEX-30,WSY+91),MSG%,PSET,,,,576-RET*576
  530. 5390 '
  531. 5400 IF WIN(1)=WIN THEN PAINT@ (WSX+4,WSY+4),%9
  532. 5410 GET@A (WSX,WSY)-(WEX-6,WEY-6),BG%,MBG(WIN)
  533. 5420 IF FH=0 THEN PAINT@ (WSX+4,WSY+4),%5 : WIN(1)=WIN : WSX(1)=WSX : WSY(1)=WSY : WEX(1)=WEX : WEY(1)=WEY
  534. 5430 RETURN
  535. 5440 '
  536. 5450 *WIN閉
  537. 5460 '
  538. 5470 LINE (WSX(1),WSY(1))-(WEX(1),WEY(1)),PSET,%1,BF : IF WIN(1)<8 THEN LXW=1
  539. 5480 FOR CW=2 TO MAXWIN
  540. 5490    WIN(CW-1)=WIN(CW) : WSX(CW-1)=WSX(CW) : WSY(CW-1)=WSY(CW)
  541. 5500    WEX(CW-1)=WEX(CW) : WEY(CW-1)=WEY(CW)
  542. 5510 NEXT
  543. 5520 MAXWIN=MAXWIN-1 : GOSUB *WIN再書
  544. 5530 RETURN
  545. 5540 *WIN再書
  546. 5550 IF LXW=1 THEN QWIN=WIN : QWSX=WSX : QWSY=WSY : QWEX=WEX : QWEY=WEY
  547. 5560 IF LXW=1 AND KSS=1 THEN GOSUB *INFO
  548. 5570 FOR CW=MAXWIN TO 1 STEP -1
  549. 5580    LINE (WSX(CW)+6,WSY(CW)+6)-(WEX(CW),WEY(CW)),PSET,%4,BF
  550. 5590    PUT@A (WSX(CW),WSY(CW))-(WEX(CW)-6,WEY(CW)-6),BG%,PSET,,,,MBG(WIN(CW))
  551. 5600    IF LXW=1 OR JNJ=1 THEN WIN=WIN(CW) : WSX=WSX(CW) : WSY=WSY(CW) : WEX=WEX(CW) : WEY=WEY(CW) : FH=1
  552. 5610    IF LXW=1 AND KSS=1 AND (WIN(CW)=2 OR WIN(CW)=4 OR WIN(CW)=5) THEN GOSUB 3830
  553. 5620    IF LXW=1 AND KSW=1 AND (WIN(CW)=1 OR WIN(CW)=3 OR WIN(CW)=4) THEN GOSUB 3830
  554. 5630    IF JNJ=1 AND CW=1 THEN GOSUB 3830
  555. 5640    IF CW=1 THEN PAINT@ (WSX(CW)+4,WSY(CW)+4),%5
  556. 5650 NEXT
  557. 5660 IF LXW=1 THEN WIN=QWIN : WSX=QWSX : WSY=QWSY : WEX=QWEX : WEY=QWEY
  558. 5670 FH=0 : IF LXW=1 THEN KSS=0 : KSW=0 : LXW=0
  559. 5680 RETURN
  560. 5690 '開閉のアニメーション
  561. 5700 *WIN変
  562. 5710 BGM 1 : PLAY OFF : IF PP=0 THEN PLAY "t120o2l64v10@48(cdefgab>)5" ELSE PLAY "t120o6l64v10@48(bagfedc<)5" : PP=0 : '29
  563. 5720 SX=(OSX-WSX)/50 : SY=(OSY-WSY)/50
  564. 5730 EX=(OEX-WEX)/50 : EY=(OEY-WEY)/50
  565. 5740 FOR SS=1 TO 50
  566. 5750    LINE(OSX-SX*SS,OSY-SY*SS)-(OEX-EX*SS,OEY-EY*SS),XOR,%10,B
  567. 5760    FOR I=0 TO 200 : NEXT
  568. 5770    LINE(OSX-SX*SS,OSY-SY*SS)-(OEX-EX*SS,OEY-EY*SS),XOR,%10,B
  569. 5780 NEXT
  570. 5790 RETURN
  571. 5800 *WAIT
  572. 5810 DQDQ=MOUSE(9) : DQDQ=MOUSE(10) : BGM 1 : PLAY OFF : PLAY "t120o4l2@24e" : WHILE MOUSE(2,0)=-1 AND MOUSE(9)=0 AND MOUSE(10)=0 : WEND : PLAY OFF : PLAY "l2@24c" : RETURN
  573. 5820 *WEEK
  574. 5830 MONTH(2)=28-((YEAR MOD 4)=0)+((YEAR MOD 100)=0)-((YEAR MOD 1000)=0)
  575. 5840 DAY=0
  576. 5850 FOR CH=0 TO MONTH-1
  577. 5860    DAY=DAY+MONTH(CH)
  578. 5870 NEXT
  579. 5880 DAY=DAY+TODAY : RDAY=(DAY+YEAR*365+INT((YEAR+3)/4)+4) : WEEK=RDAY MOD 7
  580. 5890 RETURN
  581. 5900 *INFO
  582. 5910 ERASE IND,INH,INN : DIM IND(2000),INH(2000),INN(2000)
  583. 5920 INI=0 : TYEAR=YEAR : TMONTH=MONTH : TTODAY=TODAY : YEAR=SY(3) : MONTH=SM(3) : TODAY=SD(3) : GOSUB *WEEK : TDAY=RDAY
  584. 5930 FOR I=1 TO MG : YEAR=SYEA(I) : MONTH=SMON(I) : TODAY=SDAY(I) : GOSUB *WEEK
  585. 5940 FOR Q=1 TO 10 : IF SCA$(I,Q)="" THEN Q=11 ELSE IF CK(I,Q)=1 THEN 5950 ELSE IF DD(I,Q)>=RDAY-TDAY THEN INI=INI+1 : IND(INI)=RDAY-TDAY : INN(INI)=I : INH(INI)=Q
  586. 5950 NEXT
  587. 5960 NEXT : YEAR=TYEAR : MONTH=TMONTH : TODAY=TTODAY : IF INI<2 THEN RETURN
  588. 5970 FOR I=1 TO INI-1 : FOR Q=1 TO INI-I
  589. 5980 IF IND(Q)>IND(Q+1) THEN SWAP IND(Q),IND(Q+1) : SWAP INN(Q),INN(Q+1) : SWAP INH(Q),INH(Q+1)
  590. 5990 NEXT : NEXT : RETURN
  591. 6000 *初期画面
  592. 6010 DIM BG%(140000),ICN%(2879),MSG%(2879),MNU%(3071),MONTH(12)
  593. 6020 DIM SCA$(501,10),DD(501,10),CK(501,10),ZIKAN$(5,5),SYEA(501)
  594. 6030 DIM SMON(501),SDAY(501),IND(501),INH(501),INN(501),CYEA(1001)
  595. 6040 DIM CMON(1001),CDAY(1001),PAL(15,2)
  596. 6050 LOAD@ "fm_win.icn",ICN% : LOAD@ "fm_win.msg",MSG%
  597. 6060 LOAD@ "fm_win.mnu",MNU% : IP=1 : S$(0)="R" : S$(1)="G" : S$(2)="B"
  598. 6070 FOR C=0 TO 15
  599. 6080    PALETTE C,[C*16,C*16,C*16] : PAL(C,0)=C : PAL(C,1)=C : PAL(C,2)=C
  600. 6090 NEXT
  601. 6100 FOR CH=0 TO 1
  602. 6110    FOR CR=0 TO 31
  603. 6120       READ CH$ : BG$(CH)=BG$(CH)+CHR$(VAL("&H"+CH$))
  604. 6130    NEXT
  605. 6140 NEXT
  606. 6150 MOUSE 0 : MOUSE 2,BG$(0),BG$(1) : MOUSE 1,,,1
  607. 6160 FOR WIN=1 TO 9
  608. 6170    READ MSX(WIN),MSY(WIN),ST(WIN),WIN$(WIN) : MBG(WIN)=MBG
  609. 6180    MBG=MBG+INT((INT((MSX(WIN)+1)/8)*(MSY(WIN)-6)*4+1)/2)
  610. 6190 NEXT : MBG(WIN)=MBG
  611. 6200 FOR CH=1 TO 12
  612. 6210    READ MONTH(CH)
  613. 6220 NEXT
  614. 6230 FOR CH=0 TO 6
  615. 6240    READ WEEK$(CH)
  616. 6250 NEXT
  617. 6260 YEAR=1900+VAL(LEFT$(DATE$,2)) : YEAR=YEAR-100*(YEAR<1992) : MONTH=VAL(MID$(DATE$,4,2))
  618. 6270 SDAY=VAL(MID$(DATE$,7,2))
  619. 6280 FOR I=0 TO 3 : SY(I)=YEAR : SM(I)=MONTH : SD(I)=SDAY : NEXT
  620. 6290 OSX=319 : OSY=239 : OEX=320 : OEY=240
  621. 6300 OPEN "I",#1,"スケジュール.DAT" : INPUT #1,ID$
  622. 6310 IF ID$<>"KANATSU" THEN CLOSE : KILL "スケジュール.DAT" : GOTO 6300
  623. 6320 MG=0 : WHILE EOF(1)=0
  624. 6330    MG=MG+1 : INPUT #1,SYEA(MG),SMON(MG),SDAY(MG),SN : YYY=1
  625. 6340    FOR Y=1 TO SN : INPUT #1,DD(MG,YYY),CK(MG,YYY) : LINE INPUT #1,SCA$(MG,YYY)
  626. 6350    IF CK(MG,Y)=0 OR (YEAR*12+MONTH)-(SYEA(MG)*12+SMON(MG))<6 THEN YYY=YYY+1
  627. 6360    NEXT : IF YYY=1 THEN MG=MG-1
  628. 6370 WEND : CLOSE
  629. 6380 OPEN "I",#1,"時間割.DAT" : INPUT #1,ID$
  630. 6390 IF ID$<>"KANATSU" THEN CLOSE : KILL "時間割.DAT" : GOTO 6380
  631. 6400 IF EOF(1)=-1 THEN CLOSE : GOTO 6460
  632. 6410 FOR DA=0 TO 5
  633. 6420    FOR TI=0 TO 5
  634. 6430       LINE INPUT #1,ZIKAN$(DA,TI)
  635. 6440    NEXT
  636. 6450 NEXT : CLOSE
  637. 6460 OPEN "I",#1,"休日.DAT" : INPUT #1,ID$
  638. 6470 IF ID$<>"KANATSU" THEN CLOSE : KILL "休日.DAT" : GOTO 6460
  639. 6480 MQ=0 : WHILE EOF(1)=0
  640. 6490    MQ=MQ+1 : INPUT #1,CYEA(MQ),CMON(MQ),CDAY(MQ)
  641. 6500 WEND : CLOSE : GOSUB *INFO
  642. 6510 OPEN "I",#1,"環境.DAT" : INPUT #1,ID$
  643. 6520 IF ID$<>"KANATSU" THEN CLOSE : KILL "環境.DAT" : GOTO 6510
  644. 6530 IF EOF(1)=-1 THEN CLOSE : MMS=9 : GOTO 6580
  645. 6540 FOR C=0 TO 15
  646. 6550    INPUT #1,PAL(C,0),PAL(C,1),PAL(C,2)
  647. 6560    PALETTE C,[PAL(C,1)*16,PAL(C,0)*16,PAL(C,2)*16]
  648. 6570 NEXT : INPUT #1,MMS : MOUSE 3,0,17-MMS : MOUSE 3,1,17-MMS : CLOSE
  649. 6580 LINE (0,0)-(639,479),PSET,%1,BF
  650. 6590 OPEN "I",#1,"CUSTOM.DAT" : INPUT #1,ID$
  651. 6600 IF ID$<>"KANATSU" THEN CLOSE : KILL "CUSTOM.DAT" : GOTO 6590
  652. 6610 WHILE EOF(1)=0
  653. 6620    INPUT #1,WIN,WSX,WSY : GOSUB *WIN開
  654. 6630 WEND : IF MAXWIN=0 THEN WIN=1 : WSX=32 : WSY=32 : GOSUB *WIN開
  655. 6640 CLOSE
  656. 6650 OPEN "O",#1,"TMANAGER.TMP" : CLOSE : KILL "TMANAGER.TMP"
  657. 6660 RETURN
  658. 6670 'エラー処理
  659. 6680 *ERROR
  660. 6690 CLOSE
  661. 6700 IF ERL=6590 THEN OPEN "O",#1,"CUSTOM.DAT" : GOTO 6790
  662. 6710 IF ERL=6300 THEN OPEN "O",#1,"スケジュール.DAT" : GOTO 6790
  663. 6720 IF ERL=6380 THEN OPEN "O",#1,"時間割.DAT" : GOTO 6790
  664. 6730 IF ERL=6460 THEN OPEN "O",#1,"休日.DAT" : GOTO 6790
  665. 6740 IF ERL=6510 THEN OPEN "O",#1,"環境.DAT" : GOTO 6790
  666. 6750 WIN=9 : WSX=197 : WSY=187 : OSX=319 : OSY=239 : OEX=320 : OEY=240
  667. 6760 IF ERL=6650 THEN RET=1 : MES$="書換え不可能なメディアです!" : SVSV=0 : GOTO 6780
  668. 6770 RET=1 : IF ERR=21 THEN MES$="メモリーがいっぱいです。" : SVSV=1 ELSE MES$="エラー発生!強制終了します" : SVSV=0
  669. 6780 GOSUB *WIN開 : RESUME *メイン
  670. 6790 PRINT #1,"KANATSU" : CLOSE : RESUME
  671. 6800 DATA 3F,FF,1F,FF,0F,FF,07,FF,03,FF,01,FF,00,FF,00,7F
  672. 6810 DATA 00,3F,00,1F,00,1F,00,7F,00,FF,10,7F,38,7F,FC,7F
  673. 6820 DATA 00,00,40,00,60,00,30,00,58,00,3C,00,5E,00,2F,00
  674. 6830 DATA 5F,80,2F,00,54,00,46,00,02,00,03,00,01,00,00,00
  675. 6840 DATA 246,162,0,MENU,294,210,1,カレンダー,302,314,1,スケジュール
  676. 6850 DATA 382,242,1,週間予定,374,162,1,情報,350,194,0,時間割
  677. 6860 DATA 214,162,0,環境設定,422,74,0,データ入力,246,106,0,実行確認
  678. 6870 DATA 31,28,31,30,31,30,31,31,30,31,30,31,日,月,火,水,木,金,土
  679.